/**
 * 生成随机字符串
 * @param length 长度
 * @param radix 基数
 * @returns {string}
 */
export function randomString (length = 32, radix) {
  const num = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
  let result = ''
  for (let i = 0; i < length; i++) {
    result += num.charAt(Math.floor(Math.random() * (radix || num.length)))
  }
  return result
}

/**
 * 去除左右空格
 * @param str
 * @returns {*}
 */
export function strTrim (str) {
  return str.replace(/(^\s*)|(\s*$)/g, '')
}

/**
 * 字符串隐藏
 * @param str 字符串
 * @param startLen 前留长度
 * @param endLen 后留长度
 * @param asteriskLen 星号数量（未设置中间隐藏多少就会显示多少星号
 * @returns {string}
 */
export function hiddenString (str, startLen, endLen, asteriskLen = 0) {
  let len = asteriskLen ? asteriskLen : str.length - startLen - endLen
  let asterisk = '*'.repeat(len)
  return str.substring(0, startLen) + asterisk + str.substring(str.length - endLen)
}

/**
 * 文本输入框内容分割成数组
 * @param text
 * @param del_empty
 * @returns {any[]}
 */
export function textareaValueToArray (text = '', del_empty = true) {
  // 根据换行或者回车进行识别
  let code = value.split(/[(\r\n)\r\n]+/)
  // 删除空项
  if (del_empty) {
    code.forEach((item, index) => {
      if (!item) {
        code.splice(index, 1)
      }
    })
  }
  return code
}
